<template>
    <div class="app-container">
        <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
                <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
                    @click="handleMutipleDelete" v-hasPermi="['system:role:remove']">删除</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-tooltip class="item" effect="dark" content="刷新" placement="right">
                    <el-button icon="el-icon-refresh" circle size="mini" @click="getList"></el-button>
                </el-tooltip>
            </el-col>
        </el-row>

        <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
            <el-table-column type="selection" width="50" align="center" />
            <el-table-column label="编号" prop="id" width="50" />
            <el-table-column label="姓名" prop="name" :show-overflow-tooltip="true" width="110" />
            <el-table-column label="年龄" prop="age" :show-overflow-tooltip="true" width="50" />
            <el-table-column label="性别" prop="sex" :show-overflow-tooltip="true" width="50" />
            <el-table-column label="联系方式" prop="phone" :show-overflow-tooltip="true" width="150" />
            <el-table-column label="工作经验(年)" prop="workTime" :show-overflow-tooltip="true" width="110" />
            <!-- <el-table-column label="投递岗位" prop="targetPosition" :show-overflow-tooltip="true" width="115" /> -->
            <el-table-column label="最高学历" prop="education" :show-overflow-tooltip="true" width="115" />
            <el-table-column label="毕业院校" prop="school" :show-overflow-tooltip="true" width="200">

            </el-table-column>
            <el-table-column label="人才画像" prop="talentPortrait" :show-overflow-tooltip="true" width="200">
                <template slot-scope="scope">
                    <div v-if="scope.row.talentPortrait.length > 0">
                        <el-tag size="small" style="margin-left: 5px;" v-for="(item, index) in scope.row.talentPortrait"
                            :key="index" :type="item.type">
                            {{ item.name }}
                        </el-tag>
                    </div>
                </template>
            </el-table-column>


            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                <template slot-scope="scope" v-if="scope.row.roleId !== 1">
                    <el-button size="mini" type="text" icon="el-icon-search" @click="handleUpdate(scope.row)"
                        v-hasPermi="['system:role:edit']">查看详情</el-button>
                    <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                        v-hasPermi="['system:role:remove']">删除</el-button>
                </template>
            </el-table-column>
        </el-table>

        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
            @pagination="getList" />

        <el-dialog :title="title" :visible.sync="open" width="75vw" append-to-body>
            <el-descriptions class="margin-top" :column="3" border>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-user"></i>
                        姓名
                    </template>
                    <el-tag size="small">{{ form.name }}</el-tag>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-user"></i>
                        年龄
                    </template>
                    {{ form.age }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-male"></i>
                        性别
                    </template>
                    {{ form.sex }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-phone-outline"></i>
                        联系方式
                    </template>
                    {{ form.phone }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-tickets"></i>
                        工作经验(年)
                    </template>
                    {{ form.workTime }}
                </el-descriptions-item>
                <!-- <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-office-building"></i>
                        投递岗位
                    </template>
                    {{ form.targetPosition }}
                </el-descriptions-item> -->
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-tickets"></i>
                        最高学历
                    </template>
                    {{ form.education }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-tickets"></i>
                        毕业院校
                    </template>
                    {{ form.school }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-tickets"></i>
                        工作履历
                    </template>
                    <div v-if="form.workExperience">
                        <p v-for="(item, index) in formatExperience(form.workExperience)" :key="index">
                            {{ item }}
                        </p>
                    </div>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template slot="label">
                        <i class="el-icon-tickets"></i>
                        人才画像
                    </template>
                    <div v-if="form.talentPortrait">
                        <el-tag size="small" style="margin-left: 5px;" v-for="(talent, idx) in form.talentPortrait"
                            :key="idx" :type="talent.type">
                            {{ talent.name }}
                        </el-tag>
                    </div>
                </el-descriptions-item>
            </el-descriptions>
        </el-dialog>
    </div>
</template>
  
<script>
import { listResume, getById, getResumeFileById, delByIds, listResumeFile } from '@/api/system/resume.js'
const list_211 = ['北京大学',
    '清华大学',
    '上海交通大学',
    '复旦大学',
    '浙江大学',
    '国防科技大学',
    '中国科学技术大学',
    '中国人民大学',
    '南京大学',
    '同济大学',
    '北京航空航天大学',
    '北京理工大学',
    '东南大学',
    '武汉大学',
    '华中科技大学',
    '哈尔滨工业大学',
    '西安交通大学',
    '南开大学',
    '北京师范大学',
    '华东师范大学',
    '电子科技大学',
    '中山大学',
    '天津大学',
    '厦门大学',
    '华南理工大学',
    '四川大学',
    '西北工业大学',
    '山东大学',
    '重庆大学',
    '中南大学',
    '吉林大学',
    '湖南大学',
    '兰州大学',
    '大连理工大学',
    '中国农业大学',
    '东北大学',
    '中国海洋大学',
    '中央民族大学',
    '西北农林科技大学',
    '郑州大学',
    '云南大学',
    '新疆大学',
    '上海财经大学',
    '北京邮电大学',
    '中央财经大学',
    '对外经济贸易大学',
    '上海外国语大学',
    '西安电子科技大学',
    '中国政法大学',
    '北京外国语大学',
    '空军军医大学',
    '北京交通大学',
    '南京航空航天大学',
    '南京理工大学',
    '上海大学',
    '西南财经大学',
    '北京科技大学',
    '华东理工大学',
    '中国传媒大学',
    '海军军医大学',
    '北京工业大学',
    '中南财经政法大学',
    '河海大学',
    '天津医科大学',
    '苏州大学',
    '东华大学',
    '西南交通大学',
    '华中师范大学',
    '暨南大学',
    '华北电力大学',
    '南京师范大学',
    '哈尔滨工程大学',
    '武汉理工大学',
    '陕西师范大学',
    '华南师范大学',
    '合肥工业大学',
    '北京化工大学',
    '中央音乐学院',
    '西南大学',
    '江南大学',
    '东北师范大学',
    '安徽大学',
    '西北大学',
    '福州大学',
    '河北工业大学',
    '北京林业大学',
    '湖南师范大学',
    '中国药科大学',
    '北京中医药大学',
    '中国地质大学',
    '南京农业大学',
    '中国矿业大学',
    '长安大学',
    '中国矿业大学',
    '中国石油大学',
    '海南大学',
    '大连海事大学',
    '南昌大学',
    '华中农业大学',
    '辽宁大学',
    '太原理工大学',
    '贵州大学',
    '北京体育大学',
    '延边大学',
    '广西大学',
    '东北林业大学',
    '四川农业大学',
    '内蒙古大学',
    '东北农业大学',
    '宁夏大学',
    '青海大学',
    '石河子大学',
    '西藏大学',
]

export default {
    name: "Role",
    dicts: ['sys_normal_disable'],
    data() {
        return {
            // 遮罩层
            loading: true,
            // 选中数组
            ids: [],
            // 非单个禁用
            single: true,
            // 非多个禁用
            multiple: true,
            // 显示搜索条件
            showSearch: true,
            // 总条数
            total: 0,
            // 角色表格数据
            roleList: [],
            // 弹出层标题
            title: "",
            // 是否显示弹出层
            open: false,
            // 是否显示弹出层（数据权限）
            openDataScope: false,
            menuExpand: false,
            menuNodeAll: false,
            deptExpand: true,
            deptNodeAll: false,
            // 日期范围
            dateRange: [],
            // 菜单列表
            menuOptions: [],
            // 部门列表
            deptOptions: [],
            // 查询参数
            queryParams: {
                pageNum: 1,
                pageSize: 10,
            },
            // 表单参数
            form: {},
            defaultProps: {
                children: "children",
                label: "label"
            },
            // 表单校验
            rules: {
                name: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ],
                age: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ],
                education: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ],
                salaryRange: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ],
                workExperience: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ],
                skills: [
                    { required: true, message: "不能为空", trigger: "blur" }
                ]
            },
            educationOptions: [{
                value: '初中',
                label: '初中'
            }, {
                value: '高中',
                label: '高中'
            }, {
                value: '本科',
                label: '本科'
            }, {
                value: '硕士',
                label: '硕士'
            }, {
                value: '博士',
                label: '博士'
            }],
            willDeleteIds: []
        };
    },
    created() {
        this.getList();
    },
    methods: {
        /** 查询角色列表 */
        getList() {
            this.loading = true;
            listResume(this.queryParams).then(res => {
                console.log("listResume", res);
                this.total = res.total
                for (let i = 0; i < res.rows.length; i++) {
                    console.log('我是666 ', res.rows[i]);
                    if (!res.rows[i]['name']) {
                        res.rows[i]['name'] = '--'
                    }
                    if (!res.rows[i]['age']) {
                        res.rows[i]['age'] = '--'
                    }
                    if (!res.rows[i]['sex']) {
                        res.rows[i]['sex'] = '--'
                    }
                    if (!res.rows[i]['education']) {
                        res.rows[i]['education'] = '--'
                    }
                    if (!res.rows[i]['school']) {
                        res.rows[i]['school'] = '--'
                    }
                    if (!res.rows[i]['workTime']) {
                        res.rows[i]['workTime'] = '--'
                    }
                    res.rows[i]['talentPortrait'] = []
                    let index = list_211.indexOf(res.rows[i].school)
                    if (index != -1) {
                        if (index < 39) {
                            res.rows[i]['firstClass'] = '985'
                            res.rows[i]['talentPortrait'].push({
                                name: "985",
                                type: "success"
                            })
                        } else {
                            res.rows[i]['secClass'] = '211'
                            res.rows[i]['talentPortrait'].push({
                                name: "211",
                                type: "success"
                            })
                        }
                    }

                    if (res.rows[i].workExperience) {
                        if (res.rows[i].workTime / this.formatExperience(res.rows[i].workExperience).length < 1.5) {
                            res.rows[i]['talentPortrait'].push({
                                name: '变动频繁',
                                type: "danger"
                            })
                        } else {
                            res.rows[i]['talentPortrait'].push({
                                name: "工作稳定",
                                type: "warning"
                            })
                            if (res.rows[i].workTime > 8) {
                                res.rows[i]['talentPortrait'].push({
                                    name: '经验丰富',
                                    type: "primary"
                                })
                            }
                        }
                    }

                    if (res.rows[i].workTime <= 2 && res.rows[i].workTime) {
                        res.rows[i]['talentPortrait'].push({
                            name: '应届毕业生',
                            type: "danger"
                        })
                    }
                }

                this.roleList = res.rows
                this.loading = false;
            })
        },
        // 取消按钮
        cancel() {
            this.open = false;
            this.reset();
        },
        // 表单重置
        reset() {
            if (this.$refs.menu != undefined) {
                this.$refs.menu.setCheckedKeys([]);
            }
            this.menuExpand = false,
                this.menuNodeAll = false,
                this.deptExpand = true,
                this.deptNodeAll = false,
                this.form = {
                    age: undefined,
                    avatar: undefined,
                    award: undefined,
                    education: undefined,
                    email: undefined,
                    id: undefined,
                    language: undefined,
                    name: undefined,
                    phone: undefined,
                    projectExperience: undefined,
                    sex: undefined,
                    skills: undefined,
                    targetPosition: undefined,
                    targetSalary: undefined,
                    workExperience: undefined,
                    school: undefined,
                    education: undefined,
                    firstClass: undefined,
                    secClass: undefined,
                    workTime: undefined,
                    talentPortrait: []
                };
            this.resetForm("form");
        },
        /** 新增按钮操作 */
        handleAdd() {
            this.reset();
            this.open = true;
            this.title = "添加岗位";
        },
        /** 查看详情按钮操作 */
        handleUpdate(row) {
            this.reset();
            getById(row.id).then(res => {
                let index = list_211.indexOf(res.data.school)
                if (index != -1) {
                    if (index < 39) {
                        res.data['firstClass'] = '985'
                    } else {
                        res.data['secClass'] = '211'
                    }
                }

                this.roleList.forEach(el => {
                    if (el.id == row.id) {
                        res.data['talentPortrait'] = el.talentPortrait
                    }
                })

                this.form = res.data
                this.open = true;
                this.title = "查看详情";
            })
        },
        /** 提交按钮 */
        submitForm: function () {
            this.$refs["form"].validate(valid => {
                if (valid) {
                    let range = this.form.salaryRange
                    let ragneStr, workStr
                    if (range[0]) {
                        ragneStr = `${range[0]}0000~${range[1]}0000`
                    } else {
                        ragneStr = `0~${range[1]}0000`
                    }
                    workStr = `${this.form.workExperience}年`
                    let commitForm = JSON.parse(JSON.stringify(this.form))
                    commitForm.workExperience = workStr
                    commitForm.salaryRange = ragneStr

                    if (commitForm.id) {
                        updatePosition(commitForm).then(res => {
                            if (res.code == 200) {
                                this.$modal.msgSuccess("修改成功");
                                this.open = false;
                                this.getList();
                            }
                        })
                    } else {
                        addPosition(commitForm).then(res => {
                            if (res.code == 200) {
                                this.$modal.msgSuccess("新增成功");
                                this.open = false;
                                this.getList();
                            }
                        })
                    }
                }
            });
        },
        /** 删除按钮操作 */
        handleDelete(row) {
            const roleIds = row.id;
            const that = this
            this.$modal.confirm('是否确认删除编号为"' + roleIds + '"的数据项？').then(function () {
                delByIds(roleIds).then(() => {
                    that.getList();
                    that.$modal.msgSuccess("删除成功");
                })
            }).catch(() => {

            })
        },
        /**工作经历展示格式化 */
        formatExperience(data) {
            let arr = data.split(';')
            for (let i = 0; i < arr.length; i++) {
                arr[i] = arr[i].replace(',', ': ')
            }
            return arr
        },
        /**多选删除 */
        handleSelectionChange(selection) {
            this.willDeleteIds = []
            if (selection.length > 1) {
                this.multiple = false
                selection.forEach(el => {
                    this.willDeleteIds.push(el.id)
                })
            } else {
                this.multiple = true
                this.willDeleteIds = []
            }
        },
        handleMutipleDelete() {
            const that = this
            this.$modal.confirm('是否确认删除这' + this.willDeleteIds.length + '项数据？').then(function () {
                delByIds(that.willDeleteIds).then(() => {
                    that.getList();
                    that.$modal.msgSuccess("删除成功");
                })
            }).catch(() => {

            })
        },
    }
};
</script>